import cv2

# 1. 读取图片
img = cv2.imread("../images/test_people.png")

# 2. 选择感兴趣区域
x, y, w, h = cv2.selectROI("image", img, False)    # 第三个参数False表示不显示交叉线。
roi_img = img[y:y + h, x:x + w]

# 3. 将1x1像素块的颜色拓展到 nxn像素块大小，模拟打马赛克效果
n = 20
for i in range(0, h, n):
    for j in range(0, w, n):
        color_1px = roi_img[i, j]
        roi_img[i:i + n, j:j + n] = color_1px

# 4. 将感兴趣区域替换到原图
img[y:y + h, x:x + w] = roi_img
cv2.imshow("mosaic image", img)
cv2.waitKey(0)
